package com.zhangtai.modules.entity.regular;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.zhangtai.config.LongJsonDeserializer;
import com.zhangtai.config.LongJsonSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;


/**
 * @author chenshun
 * @email sunlightcs@gmail.com
 * @date 2020-09-18 09:07:44
 */
@Data
@TableName("tb_regular_bpm")
public class RegularBpmEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     *
     */
    @TableId
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long id;
    /**
     * 员工id
     */
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long oid;

    /**
     * 关联id
     */
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long relationId;
    /**
     * 工号
     */
    private String code;
    /**
     * 账号
     */
    private String useraccount;
    /**
     * 工转正审批，0:待发起 2：已发起待审批，3：审批完成，4：作废，6：流程被驳回
     */
    private Integer regularBpmStatus;
    /**
     * 姓名
     */
    private String name;
    /**
     * 公司id
     */
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long orgId;
    /**
     * 公司名称
     */
    private String orgname;
    /**
     * 部门id
     */
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long unitId;
    /**
     * 部门名称
     */
    private String unitname;
    /**
     * 职位id
     */
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long jobId;
    /**
     * 职位名称
     */
    private String jobname;
    /**
     * 入职时间
     */
    private Date hiredate;
    /**
     * 预计转正时间
     */
    private Date regularDay;
    /**
     * 转正类型，1：新员工转正，2：晋级转正
     */
    private Integer regularType;
    /**
     *
     */
    private Integer isDelete;
    /**
     * 职级类型
     */
    private Integer jobLevelType;
    /**
     * 职级id
     */
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long jobLevelId;
    /**
     * 职级
     */
    private String jobLevel;
    /**
     * 新员工/干部培训时间
     */
    private Date traindate;
    /**
     * 培训成绩
     */
    private String trainscore;
    /**
     * 申请说明
     */
    private String remark;

    /**
     * bpm查看链接
     */
    private String checkUrl;
    /**
     * 试用期
     */
    private Integer probationday;

    private String replyScore;
    private String send;
    private String receive;
    private String score;
    private String urlIds;
    private Date createTime;

    private String beforeUnitName;
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long beforeUnitId;

    private String beforeOrgName;
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long beforeOrgId;

    private String beforeJobName;
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long beforeJobId;

    private String beforeJobLevel;
    @JsonDeserialize(using = LongJsonDeserializer.class)
    @JsonSerialize(using = LongJsonSerializer.class)
    private Long beforeJobLevelId;

    private String beforeLevelType;

    private Date applyTime;

    /**
     * 转正提醒 0：未提醒 1：已提醒
     */
    private Integer isRegularRemind;

    /**
     * 月薪
     */
    private BigDecimal monthlySalary;
    /**
     * 模块绩效
     */
    private BigDecimal performance;

    @ApiModelProperty(value = "转正基本工资", required = false)
    private BigDecimal basicSalary;

    @ApiModelProperty(value = " 转正操作 0:未转正，1：转正 ，2：延期转正 3：不予转正，4：提前转正，5：离职终止", required = true)
    private Integer isRegular;

}
